package com.cat.chapter046;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;

/**
 * @author cat
 * @description https://leetcode.cn/problems/QTMn0o/
 * @create 2025/7/15 14:24
 * @since JDK17
 */

public class Solution02 {
    long sum = 0;
    static HashMap<Long, Integer> hashMap = new HashMap<>();
    int ans = 0;
    public int subarraySum(int[] nums, int k) {
        hashMap.clear();
        hashMap.put(sum, 1);
        for (int num : nums) {
            sum = sum + num;    // 前缀和
            if (hashMap.containsKey(sum - k)) {
                ans += hashMap.get(sum - k);
            }
            if (hashMap.containsKey(sum)) { // 如果存在
                hashMap.put(sum, hashMap.get(sum) + 1); // 次数加一
            } else {
                hashMap.put(sum, 1);
            }
        }
        return ans;
    }
}
